/*!
 *  \file       InputSignal.hpp
 *  \brief      Definizione della classe \c InputSignal
 *  \author     Davide Scola <S2299453@studenti.unige.it>
 *  \author	Minetti Alberto <S3064777@studenti.unige.it>
 *  \version    1.0
 *
 */

#ifndef _INPUT_SIGNAL_H
#define _INPUT_SIGNAL_H

/*!
 *  \brief      Definizione della classe \c InputSignal
 */
template< class tType >
class InputSignal : public std::vector< tType > {
  public :
    InputSignal( InputSignal< tType > const& );
    InputSignal( const unsigned long int, ISignalGenerator< tType > & );
    
    virtual InputSignal& operator=( const InputSignal& );    
    
    virtual tType getMax( void );
    virtual tType getMin( void );
    
    virtual int nonZeroElements( void ) const;
    virtual unsigned long int indexOfMax( void );
    virtual unsigned long int indexOfMin( void );
    
    virtual void addNoise( ISignalNoise< tType > & );
};

#endif              /* _INPUT_SIGNAL_H */
